Write verify programming of a memory device

ABSTRACT

A memory device is configured to identify a set of bit cells to be changed from a first state to a second state. In some examples, the memory device may apply a first voltage to the set of bit cells to change a least a first portion of the set of bit cells to the second state. In some cases, the memory device may also identify a second portion of the bit cells that remained in the first state following the application of the first voltage. In these cases, the memory device may apply a second voltage having a greater magnitude, duration, or both to the second portion of the set of bit cells in order to set the second portion of bit cells to the second state.

BACKGROUND

In magnetic memory devices, such as magnetic random access memory (MRAM)devices, the energy consumption rate of an MRAM may be higher thancomparable non-magnetic memory devices, such as dynamic random accessmemory (DRAM) devices. Likewise, the reliability rate of an MRAM devicemay be lower than a comparable DRAM devices and other non-magneticmemory devices. In some instances, the high energy consumption rate andlower reliability rate of MRAM devices are related to the higher voltageand/or current required to read and write data bits associated with theMRAM devices.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference numbers in different figures indicates similaror identical components or features.

FIG. 1 illustrates an example diagram associated with writing data intobit cells of a memory array according to some implementations.

FIG. 2 illustrates another example diagram associated with writing datainto bit cells of a memory array according to some implementations.

FIG. 3 illustrates another example diagram associated with writing datainto bit cells of a memory array according to some implementations.

FIG. 4 illustrates another example diagram associated with writing datainto bit cells of a memory array according to some implementations.

FIG. 5 illustrates an example diagram associated with writing cache bitsof a cache into bit cells of a memory array as part ofactivate-read/write-precharge sequence according to some implementations

FIG. 6 illustrates another example diagram associated with writing cachebits of a cache into bit cells of a memory array as part ofactivate-read/write-precharge sequence according to someimplementations.

FIG. 7 illustrates an example flow diagram showing an illustrativeprocess associated with storing data in a memory array according to someimplementations.

FIG. 8 illustrates another example flow diagram showing an illustrativeprocess associated with storing data in one or more memory arraysaccording to some implementations.

FIG. 9 illustrates another example flow diagram showing an illustrativeprocess associated with storing data in one or more memory arraysaccording to some implementations.

FIG. 10 illustrates another example flow diagram showing an illustrativeprocess associated with storing data in one or more memory arraysaccording to some implementations.

FIG. 11 illustrates another example flow diagram showing an illustrativeprocess associated with storing data in one or more memory arraysaccording to some implementations.

FIG. 12 illustrates another example flow diagram showing an illustrativeprocess associated with storing data in one or more memory arraysaccording to some implementations.

FIG. 13 illustrates an example block diagram of select components of amemory device accessible to an external source.

FIG. 14 illustrates another example block diagram of select componentsof a memory device accessible to an external source.

DETAILED DESCRIPTION

This disclosure includes techniques and implementations to improve thereliability and energy consumption rates associated with accessing datastored in magnetic memory devices. For example, in some types ofmagnetic memory devices the data is stored by maintaining a desiredstate on a magnetic tunnel junction (MTJ) or a differential statebetween pairs of MTJs. The states of each bit of the memory device aretypically set or switched by applying a voltage across a correspondingMTJ. Unfortunately, repeatedly applying voltages across the MTJs may, insome cases, lead to dielectric breakdown of the tunnel barrier, therebyrendering the bit cell unusable (e.g., the restive state of the bit cellmay become fixed) and reducing the reliability and the device lifetimeof the memory device.

Additionally, the voltage required to switch or set each MTJ mayfluctuate based on a natural variation in the resistance of each MTJ, aswell as the resistive state of each MTJ. Unfortunately, in some devicesto ensure each bit switches correctly, the voltage used to set or switchthe bit cells, is a voltage having a magnitude and/or duration greaterthan the magnitude and/or duration required to switch an MTJ withaverage resistance. Additionally, in some cases when a bit cell is in ahigh resistive state, the voltage applied across the tunnel junctionfrom the write pulse is increased compared to when the bit cell is in alow resistive state. Thus, for many of the MTJs, the voltage applied isof greater magnitude and/or length than necessary. By applying the overvoltage, the power consumption associated with each write is increased,thereby increasing the overall power consumption of the device, whilethe MTJs experience accelerated breakdown of the tunnel barriers,thereby further reducing reliability of the memory device.

In some examples, the memory device may be configured to respond tocommands from an external source accessing the data in the memory devicein a predetermined series or sequence to accomplish one or more readand/or write operations. The series of commands and operations mayinclude a precharge command, an activate command, and read/writecommands. For example, the precharge command is issued to cause thememory device to close an open page by, for instance, writing datastored in a cache into the bit cells of a memory array. The activatecommand is issued to cause the memory device to open a page by, forinstance, loading data from the bit cells of the memory array into thecache. One or more read/write commands are issued between the activateand precharge command to read and/or edit the data stored in the cache.

In some implementations, described herein, the memory device may beconfigured to read data to be written into a memory array from a cachein response to receiving a precharge command. In some cases, the memorydevice may identify a state associated with each of the bit cells in thememory array. The memory device may then determine a first set of bitsin the memory array to be written to a high resistive state and a secondset of bits in the memory array to be written to a low resistive statebased at least in part on the data to be written into the memory arrayand the current state of each bit cell.

With respect to the first set of bits, the memory device may beconfigured to apply a first up voltage across the tunnel junctions ofthe bit cells of the first set of bit cells to set at least a portion ofthe first set of bit cells to the high resistive state. The memorydevice may then evaluate the state of the first set of bit cells (forexample, via a referenced read operation) to identify a first subset ofthe first set of bit cells remaining in the low resistive state. Oncethe first subset is identified, the memory device may apply a second upvoltage across the tunnel junctions associated with the bit cells of thefirst subset. In general, the second up voltage may be configured tohave a larger magnitude and/or duration than the first up voltage. Inthis manner, the MTJs having a higher natural resistance may be switchedby the first up voltage having the lower magnitude and/or reducedduration. The second up voltage may be then be applied by the memorydevice to ensure the MTJs having a lower natural resistance are set orswitched to the desired state (e.g., in this case the high resistivestate). In this manner, the memory device is able to reduce the risk andspeed at which at least some the MTJs are broken down or shorted,thereby extending the usable life of the device.

With respect to the second set of bits, the memory device may beconfigured to apply a first down voltage across the tunnel junctions ofthe bit cells of the second set of bit cells to set at least a portionof the second set of bit cells to the low resistive state. The memorydevice may then evaluate the state of the second set of bit cells (forexample, via a referenced read operation) to identify a second subset ofthe second set of bit cells remaining in the high resistive state. Oncethe second subset is identified, the memory device may apply a seconddown voltage across the tunnel junctions associated with the bits of thesecond subset. In general, the second down voltage has a largermagnitude and/or pulse length than the first down voltage. Thus asdescribed above, the MTJs having a higher natural resistance may beswitched by the first down voltage having the lower magnitude and/orreduced duration. The second down voltage may be then be applied by thememory device to ensure the MTJs having a lower natural resistance areset or switched to the desired state (e.g., in this case the lowresistive state). In this manner, the memory device is able to reducethe risk and speed at which at least some the MTJs are broken down orshorted, thereby extending the usable life of the device.

In another implementation, the memory device may be configured to resetthe state of each of the bit cells to a particular state (e.g., eitherthe high resistive state or low resistive state) before writing the datainto the memory array, such that each bit cell is in the same state whenthe precharge command is received. For example, the memory device may beconfigured to perform self-referencing reads, which may requireswitching each bit cell to the particular state as the data in thememory array is read into the cache.

For instance, in some memory devices that perform self-referenced readsa change in state of each bit cell may beidentified , while thedifference between the states (e.g., either the high resistive state orthe low resistive state) may be difficult to distinguish. Therefore, thememory device may be configured to first sample state information (suchas measuring a current when a bias voltage is applied) of each bit celland store the state information. The memory device may then apply apredetermined voltage (either up or down) across the tunnel junctions ofeach bit being read from the array to switch all of the bits to the samestate (for example, the low resistive state). After the voltage isapplied, the memory device may evaluate each bit cell to identify stateinformation (for instance, by again biasing the bit cells and measuringthe current). The memory device may then compare the state informationto the stored state information to identify a set of bit cells thatchanged state. In this manner, the memory device may identify theoriginal states of the bit cells.

In this instance, the memory device may be configured to apply apredetermined scheme to identify which bits are in the high resistivestate and which are the low resistive state. For example, the memorydevice may be configured to place each bit cell in a low resistive stateby applying a down voltage. Therefore, any bit cell that state changedmay be read as a high value or a high resistive state and any bit cellsthat state remained the same may be read as a low value or a lowresistive state.

In the present example, when the memory device receives a prechargecommand to write the data back into the memory array, the memory devicemay only switch bit cells or apply voltages to bit cells being placed inthe high resistive state, as each of the bit cells were placed in thelow resistive state following the operations performed in response tothe activate command. Therefore, in this example, the memory device mayfirst determine a set of bits to be written to a high resistive statebased on the data stored in the cache. The memory device may then applya first up voltage across the tunnel junctions of the bit cells of theset of bits to set at least a portion of the bit cells to the highresistive state. The memory device may then evaluate the state of theset of bit cells to identify a subset of the set of bit cells remainingin the low resistive state.

Once the subset is identified, the memory device may apply a second upvoltage across the tunnel junctions associated with the bit cells of thesubset. The second up voltage may have a larger magnitude and/orduration than the first up voltage to ensure the bit cells of the subsetare switched to the high resistive state. In this manner, the MTJshaving a higher natural resistance may be switched by the first upvoltage having the lower magnitude and/or duration, while the MTJshaving a low natural resistance may be switched by the second upvoltage.

In some implementations, multiple reset voltages may be utilized as partof the operations associated with the activate command or writing datainto the cache. For example, if the memory device is utilizingself-referenced reads, as described above, the memory device may applyvoltages across the tunnel junctions in a manner similar to writing thedata from the cache into the memory array. Similarly to the up and downvoltages applied when writing the data, the reset voltages applied whenreading the data increase the overall energy consumption of the memorydevice and contribute to the dielectric breakdown of the MTJs.

In this implementation, the memory device may be configured to sample astate of each bit cell (e.g., either the first resistive state or thesecond resistive state) and store the state information, as describedabove. The memory device may then apply a first reset voltage across thetunnel junctions of each bit being read from the memory array to switchall of the bits to the same state (for instance, to the first resistivestate). After the voltage is applied, the memory device may evaluate thestate of each bit cell and compare the current state (e.g., the firstresistive state or the second resistive state) to the stored state toidentify a subset of bit cells in the array whose state did not change.In this implementation, the first reset voltage may be a voltage havingeither magnitude or duration that is estimated to be insufficient toswitch every bit in the memory array and, therefore, the subset of bitcells whose state did not change may include both bit cells that werealready in the first resistive state, as well as bit cells in the secondresistive state that the first reset voltage failed to switch.

The memory device may then apply a second reset voltage having a largermagnitude and/or longer duration to the bit cells identified in thesubset of bit cells to switch the bit cells that remained in the secondresistive state. Following the second voltage, the memory device mayagain evaluate the state of each bit cell and compare the current state(e.g., first resistive state or second resistive state) to the storedstate to identify which bit cells changed state (e.g., from the secondresistive state to the first restive state) and which bit cells did notchange state (e.g., stayed in the first resistive state).

As discussed above, once the bit cells that changed state and the bitcells that did not change state are identified, the memory device mayapply a predetermined scheme to identify which bits are high and whichare low. For example, the memory device may be configured to identifyany bit cell whose state changed (e.g., form second resistive state tofirst resistive state) as a high value and any bit cells whose stateremained the same (e.g., from first resistive state to first resistivestate) as a low value.

Additionally, in some implementations, multiple voltages may be appliedas part of the operations associated with both writing and reading datafrom a memory array, as described above, to further improve the overallpower rating and failure rates of the memory device. It should also beunderstood, that the operations associated with writing and reading thedata may include applying additional voltages. In the illustratedexamples, the memory device is discussed with respect to applying afirst voltage and second voltage having a different magnitude, duration,or both. However, in some implementations, additional voltages (e.g., athird voltage, fourth voltage, etc.) and additional sample/evaluateoperations may be implemented by the memory device to further refine orimprove the overall power consumption and lifetime associated with thememory device. For example, the memory device may be configured to applya first voltage at a magnitude, duration, or both estimated to switchabout 90% of the bit cells, a second voltage at a magnitude, duration,or both estimated to switch about 99% of the bit cells, a third voltageat a magnitude, duration, or both estimated to switch about 99.9% of thebit cells, and fourth voltage at a magnitude, duration, or bothestimated to reliably switch 100% of the bit cells.

FIG. 1 illustrates an example diagram 100 associated with writing data102 into bit cells of a memory array 104 according to someimplementations. For example, the diagram 100 may illustrate eventsassociated with an external source (e.g., a memory device controller)writing data 102 to be stored within a memory array 104 of a memorydevice, such as an MRAM device. For instance, in the illustratedexample, the memory device receives a write back command 106 (or in someimplementations a precharge command) from the external source to writethe data 102 stored in a cache into the bit cells of the memory array104. In other implementations, the memory device may receive the data102 to be written into bit cells of the memory array 104 as part of astream of data.

In general, the bit cells of the memory array 104 are shown at variouspoints in time, as the write back operations 108 are performed by thememory device. For example, memory array 104(A) illustrates the state ofthe bit cells prior to receiving the write back command 106, memoryarray 104(B) illustrates the state of the bit cells following thecompletion of the identify operations 110, memory array 104(C)illustrates the state of the bit cells following the application of thefirst write voltage 112, memory array 104(D) illustrates the state ofthe bit cells following the completions of the evaluate operations 114,and memory array 104(E) illustrates the state of the bit cells followingthe application of the second write voltage 116.

In the illustrated example, the data bits of the data 102 and the bitcells of the memory array 104 are shown as either light or dark. In thisexample, a darkened bit is representative of a high resistive state or avalue of one and a light bit is representative of a low resistive stateor a value of zero.

In general, the memory device first preforms identify operations 110 onthe data 102 to determine a current state associated with each data bit.For instance, with regard to the illustrated example, a first portion ofthe data bits, generally indicated by 118, of the data 102 are dark and,therefore, representative of a value of one or a high resistive state.Similarly, a second portion of the bits, generally indicated by 120, ofthe data 102 are light and, therefore, representative of a value of zeroor a low resistive state.

Additionally, in the illustrated example, the memory device may be ableto identify the current state associated with each of the bit cells. Forinstance, if the memory device incorporates self-referenced reads, eachof the bit cells of the memory array 104 may be set to a particularresistive state (for example, the low resistive state) when the data isread. Therefore, each bit cell remains in the particular resistive statewhen data is written back into the memory array 104. For instance, inthe illustrated example, each of the bit cells of the memory array104(A) are initially set to the low resistive state.

Once the state of the data bits and the bit cells of memory array 104(A)are known, the memory device may determine a set of bits, generallyindicated by 122 and illustrated with a horizontal shading on the databits of memory array 104(B), to be written to a high resistive state.The set of data bits 122 are selected in some instances based on adetermination that a state of the bit cells of the memory array 104(A)differs from the state of the corresponding data 102. For example, thememory device may identify a bit cell corresponding to each of the bitsof the data 102 having a value of one or a value representative of thehigh resistive state and include each identified bit cell in the set ofbit cells 122.

The memory device may apply a first write voltage 112 across the tunneljunctions of the bit cells of the set of bits 122 (e.g., the bit cellsillustrated with the horizontal shading in memory array 104(B)) to setat least a portion of the bit cells of the set of bits 122 to the highresistive state, as illustrated by 104(C). In some implementations,applying the first write voltage 112 may include applying a voltagehaving a first predetermined magnitude across the tunnel junctions ofthe bit cells. In other implementations, applying the first writevoltage 112 may include applying a voltage for a first predeterminedduration across the tunnel junctions of the bit cells. In still otherimplementations, applying the first write voltage 112 may includeapplying a voltage having both the first predetermined magnitude and thefirst predetermined duration across the tunnel junctions of the bitcells.

In some examples, the first predetermined magnitude of the first voltagemay be set at a voltage level estimated to switch the state of less thanone hundred percent of the bit cells. For example, the voltage level maybe estimated to switch the state associated with about eighty fivepercent of the bit cells, ninety percent of the bit cells, ninety fivepercent of the bit cells, ninety nine percent of the bit cells, ninetynine point nine percent of the bit cells, etc. Likewise, the firstpredetermined duration of the first voltage may be set at a period oftime estimated to switch the state of less than one hundred percent ofthe bit cells, for example, the period may be set to a length estimatedto switch the state associated with about eighty five percent of the bitcells, ninety percent of the bit cells, ninety five percent of the bitcells, ninety nine percent of the bit cells, ninety nine point ninepercent of the bit cells, etc. In some cases, the combination of thefirst predetermined magnitude and the first predetermined duration maybe configured jointly to cause a predetermined percentage of the bitcells to change state.

After applying the first write voltage 112, the memory device mayperform one or more evaluate operations 114 to the bit cells of the setof bit cells 122 or in some cases, to each of the bit cells in thememory array 104. The evaluate operations 122 are configured to identifya subset of bit cells, generally indicated by 124 and illustrated with adarkened horizontal shading in memory array 104(C), remaining in the lowresistive state after the first write voltage 112 was applied. Forexample, the memory device may perform referenced read operations on thebit cells associated with the set of bit cells 122 to determine if anyremained in the low resistive state. In general, the subset of bit cells124 include the bit cells of the set of bit cells 122 that the firstwrite voltage 112 did not cause to switch from the low resistive stateto the high resistive state. For example, since the first write voltage112 may have a first predetermined magnitude and/or a firstpredetermined duration that are configured such that a state of at leastsome portion of the bit cells of the memory array 104 would not switchstates, it is possible that one or more bit cells of the set of bitcells 122 did not switch to the high resistive state. For instance, inthe illustrated example, six bit cells failed to switch to the highresistive state following the application of the first write voltage112.

If at least one bit cell of the set of bit cells 122 remained in the lowresistive state, the memory device may apply a second write voltage 116across the tunnel junctions associated with the bit cells of the subset124. The second write voltage 116 may have a second predeterminedmagnitude, may be applied for a second predetermined duration, and/orboth. In some cases, the second predetermined magnitude may be a largerthan the first predetermined magnitude associated with the first writevoltage 112 and the second predetermined duration may be larger than thefirst predetermined duration associated with the first write voltage112. For example, the second predetermined magnitude may be set to avoltage level estimated to reliably switch the state of one hundredpercent of the bit cells. Similarly, the second predetermined durationmay be set to a period of time sufficient to reliably switch the stateof one hundred percent of the bit cells of the memory array 104.

In some particular cases, the second write voltage 116 may be configuredsuch that the combination of the second predetermined magnitude and thesecond predetermined duration is sufficient to switch the state of eachof the bit cells of the memory array 104 not already in the highresistive state. Thus, the second write voltage 116 having a largermagnitude and/or duration ensures that the bit cells of the subset 124(e.g., the bit cells whose state was not switched in response to firstwrite voltage 112) are set to the high resistive state. For example, inthe illustrated example, following the application of the second writevoltage 116, the bit cells of the memory array 104(D) are placed in astate corresponding to the state of the bits of the data 102 beingwritten, as shown in the memory array 104(E).

By applying a first write voltage 112 and a second write voltage 116 inthe manner describe above, the second write voltage 116 having a largermagnitude and/or duration may be applied to a smaller portion or numberof the bit cells, as the first write voltage 112 with a smallermagnitude and/or duration switched at least a portion of the bit cells.Additionally, if each of the bit cells of the set of bit cells 120switched after the application of the first write voltage 112 than thesecond write voltage 116 may be unnecessary. In this manner, the memorydevice is able to experience reduced power consumption, as low voltagesfor a shorter period may be used to switch the state of at least aportion of the bit cells. The memory device may also experience improvedreliability, as less voltage is applied across the tunnel junction of atleast a portion of the bit cells slowing a rate associated with thedielectric break down of the MTJs.

FIG. 2 illustrates another example diagram 200 associated with writingdata 202 into bit cells of a memory array 204 according to someimplementations. For example, the diagram 200 may illustrate eventsassociated with an external source (e.g., a memory device controller)writing data to be stored within a memory device, such as an MRAMdevice. For instance, in the illustrated example the memory devicereceives a write back command 206 from the external source to write data202 stored in a cache to the memory array 204. However, in otherimplementations, the memory device may start the write back operations208 in response to receiving the data 202 without any additionalcommands.

In general, the bit cells of the memory array 204 are shown at variouspoints in time, as the write back operations 208 are performed by thememory device. For example, memory array 204(A) illustrates the state ofthe bit cells prior to receiving the write back command 206. Memoryarray 204(B) illustrates the state of the bit cells following thecompletion of the identify operations 210 and the sample operations 212.Memory array 204(C) illustrates the state of the bit cells following theapplication of the first up voltage 214. Memory array 204(D) illustratesthe state of the bit cells following the application of the first downvoltage 216. Memory array 204(E) illustrates the state of the bit cellsfollowing the completion of the evaluate operations 218. Memory array204(F) illustrates the state of the bit cells following the applicationof the second up voltage 220. Memory array 204(G) illustrates the stateof the bit cells following the application of the second down voltage222.

In the illustrated example, the data bits of the data 202 and the bitcells of the memory array 204 are shown as either light or dark. In thisexample, assume that a darkened bit is representative of a highresistive state or a value of one and a light bit is representative of alow resistive state or a value of zero. In general, the memory devicefirst performs identify operations 210 on the data 202 to determine acurrent state associated with each data bit. For instance, with regardsto the illustrated example, a first portion of the bits, generallyindicated by 224, of the data 202 are dark and, therefore,representative of a value of one or a high resistive state. Similarly, asecond portion of the bits, generally indicated by 226, of the data 202are light and, therefore, representative of a value of zero or a lowresistive state.

In the illustrated example, the memory device also performs sampleoperations 212 on the bit cells to identify a current state associatedwith each of the bit cells of the memory array 204(A). For example, thememory device may sample the current state of each bit cell bypreforming a referenced read operation and/or by applying a voltage toeach of the bits cells and determining an associated resistance.

Once the state of each bit of the data 202 and the current state of theeach bit cell within the memory array 204(A) are identified, the memorydevice may identify a first set of bits, generally indicated by 228 andillustrated by a horizontal shading in memory array 204(B), to bewritten to a high resistive state. The memory device also identifies asecond set of bits, generally indicated by 230 and illustrated by avertical shading in the memory array 204(B), to be written to a lowresistive state. For example, the memory device may identify the firstset of bits 228 and the second set of bits 230 by comparing the currentstate of the bit cells to the state of the bits of the data 202 to bewritten.

In the illustrated example, the memory device may be configured to applythe first up voltage 214 to switch at least a portion of the first setof bit cells 228 to the high resistive state and the first down voltage216 to switch at least a portion of the second set of bit cells 230 tothe low resistive state. For example, the first up voltage 214 may havea first predetermined magnitude and/or be applied for a firstpredetermined duration and the first down voltage 216 may have a secondpredetermined magnitude and/or be applied for a second predeterminedduration.

In some examples, the first predetermined magnitude and the secondpredetermined magnitude may be the same but applied across the tunneljunctions in different directions. In other examples, the firstpredetermined magnitude and the second predetermined magnitude maydiffer, for instance, when a voltage level associated with switching thebit cells from the high resistive state to the low resistive state isdifferent from a voltage level associated with switching the bit cellsfrom the low resistive state to the high resistive state. Likewise, insome cases, the first predetermined duration and the secondpredetermined duration may be the same. In other cases, the firstpredetermined duration and the second predetermined duration may differ,for instance, when switching bit cells from the high resistive state tothe low resistive state requires longer duration than switching the bitcells from the low resistive state to the high resistive state or viceversa.

As described above, the first predetermined magnitude and the secondpredetermined magnitude may be set at a voltage level to switch thestate of less than one hundred percent of the bit cells of the memoryarray 204 to reduce the destructiveness of the first up voltage 214 andthe first down voltage 216 (e.g., slow the dielectric breakdown of thetunnel junctions). Likewise, the first predetermined duration and thesecond predetermined duration may be set at a period estimated to switchthe state of less than one hundred present of the bit cells to againreduce the destructiveness of the first up voltage 214 and the firstdown voltage 216.

In the illustrative example, the first up voltage 214 is shown as beingapplied to the first set of data bits 228 before the first down voltage216 is applied to the second set of data bits 230. However, the orderassociated with the first up voltage 214 and the first down voltage 216shown in the current example is merely for illustrative purposes. Forexample, the first down voltage 216 may be applied before the first upvoltage 214. In other examples, the first up voltage 214 and the firstdown voltage 216 may be applied in multiple pulses, which may beinterleaved.

Once the first up voltage 214 is applied to the first set of bit cells228 and the first down voltage 216 is applied to the second set of bitcells 230, the memory device may perform evaluate operations 218 todetermine a state of the bits cells associated with both the first setof bit cells 228 and the second set of bit cells 230. For example, thememory device may compare a resistance (or current) stored at the timethe sample operations 212 were performed with a current resistance (orcurrent) identified as part of the evaluate operations 218 to determineif the state of the bit cells changed.

The memory device may identify a first subset of bit cells, generallyindicated by 232 and illustrated by the darkened horizontal shading inthe memory arrays 204(C)-(E). In general, the first subset of bit cells232 may be bit cells of the first set of bit cells 228 that remained inthe low resistive state after the first up voltage 214 was applied(e.g., bit cells that failed to switch from the low resistive state tothe high resistive state). Likewise, the memory device may identify asecond subset of bit cells, generally indicated by 234 and illustratedby the darkened vertical shading in the memory arrays 204(D)-(F). Thesecond subset of bit cells 234 may be bit cells of the second set of bitcells 230 that remained in the high resistive state after the first downvoltage 216 was applied (e.g., bit cells that failed to switch from thehigh resistive state to the low resistive state).

Once the first subset 232 and second subset 234 are identified, thememory device may apply the second up voltage 220 to switch theremaining bit cells of the first subset 232 from the low resistive stateto the high resistive state. The memory device may also apply the seconddown voltage 222 to switch the remaining bit cells of the second subset234 from the high resistive state to the low resistive state. Forexample, the second up voltage 220 may have a larger magnitude and/or beapplied for a longer duration than the first up voltage 214 to ensurethe remaining bit cells of the first subset 228 are set to the highresistive state. The second down voltage 222 may have a larger magnitudeand/or be applied for a longer duration than the first down voltage 216to ensure the remaining bit cells of the second set of bit cells 230 areset to the low resistive state. Thus as described above, the MTJs havinga higher natural resistance may be switched by the first up voltage 214or the first down voltage 216 reducing the risk and speed at which atleast some of the tunnel junctions are broken down or shorted. Then thesecond up voltage 220 and the second down voltage 222 may be applied toensure the MTJs having a lower natural resistance are set or switched tothe desired state and the data 202 is stored correctly, as shown in thememory array 204(G).

FIG. 3 illustrates another example diagram 300 associated with writingdata 302 into bit cells of a memory array 304 according to someimplementations. For example, the diagram 300 may illustrate eventsassociated with an external source (e.g., a memory device controller)writing data to be stored within a memory device, such as an MRAMdevice. For instance, in the illustrated example the memory devicereceives a write back command 306 from the external source to write data302 stored in a cache to the memory array 304. However, in otherimplementations, the memory device may receive the data 302 to bewritten into bit cells of the memory array 304 as part of a stream ofdata.

In general, the bit cells of the memory array 304 are shown at variouspoints in time, as the write back operations 308 are performed by thememory device. For example, memory array 304(A) illustrates the state ofthe bit cells prior to receiving the write back command 306. Memoryarray 304(B) illustrates the state of the bit cells following thecompletion of the identify operations 310 and the sample operations 312.Memory array 304(C) illustrates the state of the bit cells following theapplication of the first up voltage 314. Memory array 304(D) illustratesthe state of the bit cells following the completions of the firstevaluate operations 316. Memory array 304(E) illustrates the state ofthe bit cells following the application of the second up voltage 318.Memory array 304(F) illustrates the state of the bit cells following theapplication of the first down voltage 320. Memory array 304(G)illustrates the state of the bit cells following the completion of thesecond evaluate operations 322. Memory array 304(H) illustrates thestate of the bit cells following the application of the second downvoltage 324.

In the illustrated example, the data bits of the data 302 and the bitcells of the memory array 304 are shown as either light or dark. In thisexample, assume that a darkened bit is representative of a highresistive state or a value of one and a light bit is representative of alow resistive state or a value of zero. In general, the memory devicefirst performs a read operation 310 on the data 302 to identify a stateassociated with each data bit. For instance, with regards to theillustrated example, a first portion of the data bits, generallyindicated by 326, of the data 302 are dark and, therefore,representative of a value of one or a high resistive state. Similarly, asecond portion of the bits, generally indicated by 328, of the data 302are light and, therefore, representative of a value of zero or a lowresistive state.

In the illustrated example, the memory device also identifies the bitcells of the memory array 304 that the data 302 is being written to andperforms sample operations 312 on the bit cells to identify a currentstate associated with each of the bit cells. For example, the memorydevice may sample the current state of each bit cell by performing areferenced read operation and/or by applying a voltage to each of thebits cells and determining an associated resistance.

Once the state of each bit to be written to the memory array 304 and thecurrent state of the each bit cell within the memory array 304(A) isidentified, the memory device may identify a first set of bits,generally indicated by 330 and illustrated by a horizontal shading inthe memory array 304(B), to be written to a high resistive state.Similarly, the memory device may identify a second set of bits,generally indicated by 332 and illustrated by a vertical shading in thememory array 304(B), to be written to a low resistive state. Forexample, the memory device may identify the first set of data bits 330and the second set of data bits 332 by comparing the current state ofthe bit cells of memory array 304(A) to the state of the bits of thedata 302.

In the illustrated example, the memory device may be configured to applya first up voltage 314 to switch at least a portion of the first set ofbit cells 330 to the high resistive state. For example, the first upvoltage 314 may have a predetermined magnitude and/or be applied for apredetermined duration. In some examples, the predetermined magnitude ofthe first up voltage 314 may be set at a voltage level estimated toswitch the state of less than one hundred percent of the bit cells. Forexample, the magnitude may be set to a voltage level estimated to switchthe state associated with about twenty five percent of the bit cells,fifty percent of the bit cells, seventy five percent of the bit cells,eighty percent of the bit cells, ninety percent of the bit cells, etc.Likewise, the predetermined duration of the first up voltage 314 may beset at a period of time estimated to switch the state of less than onehundred present of the bit cells. For example, the predeterminedduration may be set to a length estimated to switch the state associatedwith about twenty five percent of the bit cells, fifty percent of thebit cells, seventy five percent of the bit cells, eighty percent of thebit cells, ninety percent of the bit cells, etc.

Once the first up voltage 314 is applied to the first set of bit cells330, the memory device may perform the first evaluate operations 316 todetermine a state of the bits cells associated with the first set of bitcells 330. From the first set of bit cells 330, the memory device mayidentify a first subset of bit cells, generally indicated by 334 andillustrated by the darkened horizontal shading in the memory array304(D). In general, the first subset of bit cells 334 are bit cells ofthe first set of bit cells 330 that remained in the low resistive stateafter the first up voltage 314 was applied (e.g., bit cells that failedto switch from the low resistive state to the high resistive state).

Once the bit cells of the first subset 334 are identified, the memorydevice may apply the second up voltage 318 to switch the bit cells ofthe first subset 334 from the low resistive state to the high resistivestate. For example, the second up voltage 318 may have a largermagnitude and/or be applied for a longer duration than the first upvoltage 314 to ensure the remaining bit cells of the first subset 330are set to the high resistive state. Thus, as described above, the MTJshaving a higher natural resistance may be switched by the first upvoltage 314 reducing the risk and speed at which at least some of thetunnel junctions are broken down or shorted. The second up voltage 318may then be applied to ensure the MTJs having a lower natural resistanceare set or switched to the high resistive state and the data 302 isstored correctly.

In the illustrated example, the memory device may be configured to applythe first down voltage 320 to switch at least a portion of the secondset of bit cells 332 to the low resistive state. For example, similar tothe first up voltage 314, the first down voltage 320 may have apredetermined magnitude and/or be applied for a predetermined duration.In some examples, the predetermined magnitude of the first down voltage320 may be set at a voltage level estimated to switch the state of lessthan one hundred present of the bit cells. For example, the magnitude ofthe first down voltage 320 may be set to a level estimated to switch thestate associated with about twenty five percent of the bit cells, fiftypercent of the bit cells, seventy five percent of the bit cells, eightypercent of the bit cells, ninety percent of the bit cells, etc.Likewise, the predetermined duration of the first down voltage 320 maybe set at a period of time estimated to switch the state of less thanone hundred present of the bit cells. For example, the duration of thefirst down voltage 320 may be set to a length estimated to switch thestate associated with about twenty five percent of the bit cells, fiftypercent of the bit cells, seventy five percent of the bit cells, eightypercent of the bit cells, ninety percent of the bit cells, etc.

Once the first down voltage 320 is applied to the second set of bitcells 332, the memory device may perform second evaluate operations 322to determine a state of the bits cells associated with the second set ofbit cells 332. From the second set of bit cells 332, the memory devicemay identify a second subset of bit cells, generally indicated by 336and illustrated by the darkened vertical shading in the memory array304(F). In general, the second subset of bit cells 336 are bit cells ofthe second set of bit cells 332 that remained in the high resistivestate after the first down voltage 320 was applied (e.g., bit cells thatfailed to switch from the high resistive state to the low resistivestate).

Once the bit cells of the second subset 336 are identified, the memorydevice may apply the second down voltage 324 to switch the remaining bitcells of the second subset 336 from the low resistive state to the highresistive state. For example, the second down voltage 324 may have alarger magnitude and/or be applied for a longer duration than the firstdown voltage 320 to ensure the remaining bit cells of the second subset336 are set to the low resistive state. Thus, the MTJs having a highernatural resistance may be switched by the first down voltage 320reducing the risk and speed at which at least some of the tunneljunctions are broken down or shorted. The second down voltage 324 maythen be applied to the second set of bit cells 332 to ensure the MTJshaving a lower natural resistance are set or switched to the lowresistive state and the data 302 is stored correctly, as shown in thememory array 304(H).

FIG. 4 illustrates another example diagram associated with writing data402 into bit cells of a memory array 404 according to someimplementations. In some cases, it may be desirable, for instance, froma power perspective, to reset each of the bits of the memory array 404to a predetermined state prior to writing the data 402 into the bitcells. For example, the memory device may implement an inversion schemethat benefits from having each bit cell of the memory array 404 in apredetermined state prior to writing data back into the memory array404. For example, some inversion schemes include a process of settingeach of the bit cells to the low resistive state prior to writing the402 data into the array 404. The memory device may then perform amajority detection with regard to the state of the data 402 to identifythe majority state and the minority state associated with the data bits.In this scheme, the memory device may then store the data 402 in thememory array 404 such that the bit cells corresponding to the data bitsin the minority state are switched from the low resistive state to thehigh resistive state. For example, if the minority state is the lowresistive state, the data 402 is stored and one or more inversion bitsare not set. However, if the minority state is the high resistive state,the data 402 is inverted before storing and the one or more inversionbits are set. In this manner, the memory device may save power bysetting fewer of the bits to the high resistive state following eachwrite back command 406.

In these cases, the memory device may receive a write back command 406(or in some implementations a precharge command) from the externalsource to cause the memory device to perform write back operations 408and to write the data 402 stored in a cache into the bit cells of thememory array 404. In the illustrated example, the data bits of the data402 and the bit cells of the memory array 404 are shown as either lightor dark. In this example, assume that a darkened bit is representativeof a high resistive state or a value of one and a light bit isrepresentative of a low resistive state or a value of zero. In general,the bit cells of the memory array 404 are shown at various points intime, as the write operations 408 are performed by the memory device.For example, memory array 404(A) illustrates the state of the bit cellsprior to receiving the write back command 406. Memory array 404(B)illustrates the state of the bit cells following the completion of thereset operations 410. Memory array 404(C) illustrates the state of thebit cells following the completion of the identify operations 412.Memory array 404(D) illustrates the state of the bit cells following theapplication of the first write voltage 414. Memory array 404(E)illustrates the state of the bit cells following the completions of theevaluate operations 416. Memory array 404(F) illustrates the state ofthe bit cells following the application of the second write voltage 418.

As part of the write operations 408, the memory device may perform thereset operations 410 on the bit cells of the memory array 404(A) tocause each of the bit cells to be reset to a predetermined resistivestate. In the illustrated example, each of the bit cells of the memoryarray 404(A) are set to the low resistive state (represented in theillustrated example by the light colored data bits and bit cells), asshown in memory array 404(B) and with respect to data 402. However, inother examples, the reset operations 410 may cause each of the bit cellsto be set to a high resistive state.

The memory device also performs identify operations 412 to identify astate associated with each data bit of the data 402. For instance, withregard to the illustrated example, a first portion of the bits,generally indicated by 420, of the data 402 are dark and, therefore,representative of a value of one or a high resistive state. Similarly, asecond portion of the bits, generally indicated by 422, of the data 402are light and, therefore, representative of a value of zero or a lowresistive state. In this example, since the reset operations 410 wereperformed on the bit cells of the memory array 404(A), the memory devicemay switch just the bit cells that correspond to the data bits having avalue of one or representative of a high state. Therefore, the memorydevice of the illustrated example may further improve power consumptionassociated with the memory device describe above with respect to FIGS. 2and 3, as only an up voltage may be applied.

In the illustrated example, the memory device first performs the resetoperations 410 and then performs the identify operations 412, however,in other examples, the memory device may performs the identifyoperations 412 followed by the reset operations 410. Once the memorydevice has reset the bit cells of the memory array 404(A) and hasidentified the state or value associated with the data bits of the data402, the memory device may identify a set of data bits, generallyindicated by 424 and illustrated as a horizontal shading in the memoryarray 404(D), to be switched to the high resistive state.

To switch the set of data bits 424, the memory device may apply thefirst write voltage 414 across the tunnel junctions of the bit cells ofthe set of bits 424 to set at least a portion of the bit cells of theset of bits 424 to the high resistive state. In some implementations,applying the first write voltage 414 may include applying a voltagehaving a first predetermined magnitude across the tunnel junctions ofthe bit cells. In other implementations, applying the first writevoltage 414 may include applying a voltage for a first predeterminedduration across the tunnel junctions of the bit cells. In otherimplementations, applying the first write voltage 414 may includeapplying a voltage having both the first predetermined magnitude and forfirst predetermined duration across the tunnel junctions of the bitcells. In some examples, the first predetermined magnitude of the firstvoltage may be set at a voltage level estimated to switch the state ofless than one hundred percent of the bit cells. Similarly, the firstpredetermined duration of the first voltage may be set at a period oftime estimated to switch the state of less than one hundred present ofthe bit cells.

After applying the first write voltage 414, the memory device mayperform the evaluate operations 416 to identify a subset of bit cells,generally indicated by 426 and illustrated with a darkened horizontalshading in the memory array 404(E), remaining in the low resistivestate. In general, the subset of bit cells 426 are bit cells of the setof bit cells 424 that the first write voltage 414 did not cause toswitch from the low resistive state to the high resistive state. In someinstances, the memory device may perform the evaluate operations 416 oneach of the bit cells of the memory array, while in other instances thememory device may perform the evaluate operations 416 on only the bitcells of the set of bit cells 424.

In some examples, the subset of bit cells 426 may exist since the firstpredetermined magnitude and/or the first predetermined duration of thefirst write voltage 414 may be configured such that a state of at leastsome portion of the bit cells of the memory array 404 do not switchstates. Thus, it is possible that one or more bit cells of the set ofbit cells 424 did not switch to the high resistive state upon the memorydevice applying the first write voltage 414, as illustrated in memoryarray 404(E). For instance, in the illustrated example five bit cellsfailed to switch to the high resistive state following the applicationof the first write voltage 414. Thus, the memory device may evaluate thebit cells associated with the set of bit cells 424 to identify that thefive bits of the subset 426 remained in the low resistive state. In someexamples, the number of bit cells in the subset 426 may depend on theparticular magnitude and/or duration selected for the first writevoltage 414, as well as properties of the particular bit cells of thememory array 404 being written.

If at least one bit cell remained in the low resistive state, the memorydevice may apply a second write voltage 418 across the tunnel junctionsassociated with the bit cells of the subset 426. The second writevoltage 418 may have a second predetermined magnitude, be applied for asecond predetermined duration, and/or both. In some cases, the secondpredetermined magnitude may be a larger than the first predeterminedmagnitude associated with the first write voltage 414 and the secondpredetermined duration may be longer than the first predeterminedduration associated with the first write voltage 414. For example, thesecond predetermined magnitude may be set to a voltage level estimatedto switch the state of each of the bit cells of the memory array and thesecond predetermined duration may be set to a period of time sufficientto switch the state of each of the bit cells of the memory array.

In some particular cases, the second write voltage 418 may be configuredsuch that the combination of the second predetermined magnitude and thesecond predetermined duration is sufficient to switch the state of eachof the bit cells of the memory array 404. Thus, the second write voltage418 having a larger magnitude and/or a longer duration ensures that thebit cells of the subset 426 (e.g., the bit cells whose state was notswitched in response to first write voltage 414) are set to the highresistive state. For example, in the illustrated example, following theapplication of the second write voltage 418, the bit cells of the memoryarray 404(F) are placed in a state corresponding to the state of thebits of the data 402 being written.

By applying a first write voltage 414 and a second write voltage 418 inthe manner describe above, the second write voltage 418 having a largermagnitude and/or duration may be applied to a smaller portion or numberof the bit cells than if only the second write voltage 418 was applied.In this manner, the memory device is able to experience reduced powerconsumption, as lower voltages applied for a shorter period are used toswitch the state of at least a portion of the bit cells. Likewise, thememory device may experience improved reliability, as less voltage isapplied across the tunnel junction of at least a portion of the bitcells slowing a rate associated with the dielectric break down of theMTJs.

FIG. 5 illustrates another example diagram associated with writing cachebits of a cache 502 into bit cells of a memory array 504 as part ofprecharge operations according to some implementations. For example,some memory devices may be configured to respond to commands from anexternal source accessing the memory arrays of the memory device byissuing a predetermined series or sequence of commands. For instance,the external source may be configured to issue commands according to anactivate-read/write-precharge sequence. In general, an activate command506 may be issued by the external source to cause the memory device toperform activate operations 508 associated with opening a page by, forinstance, loading state information from the bit cells of the memoryarray 504 into the cache 502. The read/write commands 510 may be issuedby the external source to cause the memory device to perform read/writeoperations 512 associated with editing and/or accessing the cache 502while the data is stored in the cache 502. The precharge command 514 maybe issued by the external source to cause the memory device to performprecharge operations 516 associated with closing the open page by, forinstance, writing the data stored in a cache 502 into the bit cells of amemory array 504.

In general, the cache bits of the cache 502 and the bit cells of thememory array 504 are shown at various points in time, as the activatecommand 506, read/write command 510, and the precharge command 514 arereceived and the activate operations 508, read/write operations 512, andthe precharge operations 516 are performed by the memory device. Forinstance, in the illustrated example, the cache 502 is shown at a firsttime as cache 502(A), a second time as cache 502(B), and a third time ascache 502(C). For example, the cache 502(A) shows the cache bits priorto the memory device receiving the activate command 506, the cache502(B) shows the cache bits after the activate operations 508 areperformed and the data in the memory array 504 has been loaded into thecache, and the cache 502(C) shows the cache bits after the read/writeoperations 512 have altered the data in the cache 502. Similarly, thememory array 504 is illustrated at various points of time as memoryarray 504(A), memory array 504(B), memory array 504(C), memory array504(D), memory array 504(E), memory array 504(F), and memory array504(G). For instance, the memory array 504(A) illustrates the state ofthe bit cells prior to receiving the activate command 506, the memoryarray 504(B) illustrates the state of the bit cells following thecompletion of the activate operations 508, the memory array 504(C)illustrates the state of the bit cells following the completion of theread/write operations 512, the memory array 504(D) illustrates the bitcells following the completion of the identify operations 518, thememory array 508(E) illustrates the bit cells following the applicationof the first write voltage 520, memory array 504(F) illustrates thestate of the bit cells following the completions of the evaluateoperations 522, and memory array 504(G) illustrates the state of the bitcells following the application of the second write voltage 524.

In the illustrated example, the cache bits of the cache 502 and the bitcells of the memory array 504 are shown as either light or dark. In thisexample, assume that a darkened bit is representative of a highresistive state or a value of one and a light bit is representative of alow resistive state or a value of zero. For example, prior to revivingthe activate command 508 the cache 502(A) has a portion of the bits,generally indicated by 526, that are darkened and, therefore,representative of a value of one or a high resistive state. Similarly,the cache 502(A) has a second portion of the bits, generally indicatedby 528, that are light and, therefore, representative of a value of zeroor a low resistive state.

In general, the memory device receives the activate command 506 and inresponse performs the activate operations 508 to load the content of thememory array 504(A) into the cache 502. In this illustrated example, thememory device is shown as implementing self-referenced reads. Thus, inthis example, each of the bit cells of the memory array 504 may be setto the low resistive state as the data is read into the cache 502, aspart of the activate operations 508. Thus, as illustrated, as the datais loaded from memory array 504(A) into the cache 502(B), the bit cellsof the memory array 504 are reset (or placed in the low resistivestate), as illustrated by memory array 504(B).

Once a time period associated the with the activate operations 508 hasexpired, the memory device may receive one or more read/write commands510 form an external source that causes the memory device to performread/write operations 512 associated with accessing or editing the datastored in the cache 502. For instance, in the illustrated example, thecache 502(C) is shown after the completion of at least one writeoperation, as the data in the cache 502(C) differs from the data in thecache 502(B).

Following the expiration of a time period associated with the read/writeoperations 512, the memory device receives the precharge command 514 tocause the memory device to perform the precharge operations 516 to writethe data in the cache 502(C) back into the memory array 504. As part ofthe precharge operations 514, the memory device may first perform theidentify operations 518 on the cache bits of the cache 502(C) todetermine a state associated with each of the cache bits and, thereby,determines a set of bit cells, generally indicated by 530 andillustrated by the horizontal shading in the memory array 504(D). Ingeneral, the set of bit cells 530 are bit cells of the memory array 504that may be switched from the low resistive state to the high resistivestate. For example, as discussed above the memory device may set each ofthe bit cells to the low resistive state following completion of theactivate operations 508 and, therefore, only the bit cells being writtento the high resistive state need be switched in the present example.

The memory device may apply the first write voltage 520 across thetunnel junctions of the bit cells of the set of bits 530 (e.g., the bitcells illustrated with the horizontal shading) to set at least a portionof the bit cells of the set of bits 530 to the high resistive state. Asdescribed above, applying the first write voltage 520 may includeapplying a voltage having a first predetermined magnitude for a firstpredetermined duration across the tunnel junctions of the bit cells.

The memory device may perform the evaluate operations 522 following theapplication of the first write voltage 520 to identify a subset of bitcells, generally indicated by 532 and illustrated with a darkenedhorizontal shading in the memory array 504(F). In general, the bit cellsof the subset 532 are the bit cells of the set of bit cells 530remaining in the low resistive state (e.g., bit cells of the set of bitcells 530 that the first write voltage 520 failed to set to the highresistive state). The memory device may apply the second write voltage524 having a larger magnitude or a longer duration to the bit cells ofthe subset 532 to ensure that the bit cells of the subset 532 areswitched into the high resistive state. In this manner, the memorydevice may utilize a first write voltage 520 having a reduced magnitudeand/or duration in order to extend the lifetime of the device and/or toreduce power consumption and the second write voltage 524 having alarger magnitude and/or duration to ensure the data is stored correctlywithin memory array 504(G).

FIG. 6 illustrates another example diagram associated with writing cachebits of a cache 602 into bit cells of a memory array 604 as part of anactivate-read/write-precharge sequence according to someimplementations. As described above with respect to FIG. 5, some memorydevices may be configured to respond to commands from an external sourceaccessing the memory arrays of the memory device by issuing apredetermined series or sequence of commands. For instance, the externalsource may be configured to issue commands according to anactivate-read/write-precharge sequence. In general, an activate command606 may be issued by the external source to cause the memory device toperform activate operations. The read/write commands 610 may be issuedby the external source to cause the memory device to perform read/writeoperations 612. The precharge command 614 may be issued by the externalsource to cause the memory device to perform precharge operations 616.

In general, the cache bits of the cache 602 and the bit cells of thememory array 604 are shown at various points in time, as the activatecommand 606, read/write command 610, and the precharge command 614 arereceived and the activate operations 608, read/write operations 612, andthe precharge operations 616 are performed by the memory device. Forinstance, in the illustrated example, the cache 602 is shown at a firsttime as cache 602(A), a second time as cache 602(F), and a third time ascache 602(G). For example, the cache 602(A) shows the cache bits priorto the memory device receiving the activate command 606, the cache602(F) shows the cache bits after the activate operations 608 areperformed, and the cache 602(G) shows the cache bits after theread/write operations 612 have altered the data in the cache 602.

Similarly, the memory array 604 is illustrated at various points of timeas memory array 604(A), memory array 604(B), memory array 604(C), memoryarray 604(D), memory array 604(E), memory array 604(F), and memory array604(H). For instance, the memory array 604(A) illustrates the state ofthe bit cells prior to receiving the activate command 606, the memoryarray 604(B) illustrates the bit cells following the completion ofsample operations 618, the memory array 608(C) illustrate the bit cellsfollowing the application of the first reset voltage 620, the memoryarray 604(D) illustrates the state of the bit cells following thecompletion of evaluate operations 622, the memory array 504(E)illustrates the state of the bit cells following the application of thesecond reset voltage 624, the memory array 604(F) illustrates the stateof the bit cells following the completion of evaluate operations 626,and the memory array 604(H) illustrates the state of the bit cellsfollowing the completion of the precharge operations 616.

In the illustrated example, the cache bits of the cache 602 and the bitcells of the memory array 604 are shown as either light or dark. In thisexample, assume that a darkened bit is representative of a highresistive state or a value of one and a light bit is representative of alow resistive state or a value of zero. For example, prior to receivingthe activate command 608 the cache 602(A) has a portion of the bits,generally indicated by 628, that are darkened and, therefore,representative of a value of one or a high resistive state. Similarly,the cache 602(A) has a second portion of the bits, generally indicatedby 630, that are light and, therefore, representative of a value of zeroor a low resistive state.

In general, the memory device receives the activate command 606 and inresponse performs the activate operations 608 to load the content of thememory array 604(A) into the cache 602. In this illustrated example, thememory device is shown as implementing self-referenced reads. Thus, inthis example, each of the bit cells of the memory array 604 may be setto the low resistive state as the data is read into the cache 602, aspart of the activate operations 608. Thus, as illustrated, as the datais loaded from memory array 604(A) into the cache 602(F), the bit cellsof the memory array 604 are reset (or placed in the low resistivestate).

In the illustrated example, the activate command 606 is received from anexternal source. In response, the memory device first performs thesample operations 618 to identify a first current associated with eachof the bit cells of the memory array 604. For example, as shown inmemory array 604(B) the memory device determines a first set of bitcells, generally indicated by 632 and illustrated with vertical shadingin memory array 604(B), having a first resistance when biased. Thememory device also identifies a second set of bit cells, generallyindicated by 634 and illustrated with crosshatch shading in memory array604(B), having a second resistance when biased. The memory device thenstores the state information (e.g., the measured current and resistance)associated with each of the bit cells.

Once the state information associated with the first set of bit cells632 and the second set of bit cells 634 are stored, the memory deviceapplies a first reset voltage to the bit cells of the memory array 604.In the illustrated example, the memory device applies a down voltage toset each of the bit cells to the low resistive state. However, in otherimplementations, the memory device may apply an up voltage to set eachof the bit cells to the high resistive state. As illustrated, the firstreset voltage 620 was of insufficient magnitude and/or duration toswitch one of the bit cells, generally indicated by 636 and shown as thedark bit cells in memory array 604(C).

After applying the first reset voltage 620, the memory device performsthe first evaluate operations 622 to identify which if any of the bitcells of the memory array 604 failed to switch states. For example, thememory device may identify the bit cells whose state changes byidentifying a second current associated with each of the bit cells ofthe memory array after the first reset voltage 620 is applied andcomparing the first current (e.g., the stored current) with the secondcurrent. If the state changed, then the first current and the secondcurrent will differ by more than a threshold amount, while if the stateremained the same the first current and the second current will differby less than the threshold amount. For instance, in the illustratedexample, the memory device identified a third set of bit cells,generally indicated by 638 and illustrated by the diagonal shading inthe memory array 604(D), as well as a fourth set of bit cells, generallyindicated by 640 and illustrated by the horizontal shading in the memoryarray 604(D). In general, the third set of bit cells 638 are bit cellswhose state did not change after the first reset voltage 620 was appliedto the memory array 604 and the fourth set of bit cells 640 are bitcells whose state did change after the first reset voltage 620 wasapplied.

In general, since the first rest voltage 620 is configured with amagnitude and/or applied for a duration insufficient to reset onehundred percent of the bit cells of the memory array 604, the third setof bit cells 638 includes the bit cell 636 that remained in the highresistive state. Therefore, if the memory device, at this time,identified each bit cell of the third set of bit cells 636 asrepresenting a high value, the memory device would cause an error withregards to bit cell 636 as the state did not change and the bit cell 636would be read as a low resistive state and therefore output as a lowvalue.

Therefore, the memory device is configured to apply the second resetvoltage 624 to the third set of bit cells 638. The second reset voltage624 is of sufficient magnitude and/or applied for a duration to resetthe state of each bit cell of the memory array 604 to the low resistivestate. By applying the second reset voltage 624 to only the third set ofbit cells 638 as shown in the memory array 604(D), the voltage havinglarger magnitude and/or duration is applied to only a subset of the bitcells of the memory array 604 and therefore, the lifetime of the memoryarray 604 may be extended and the overall power consumption of thememory device may be reduced.

Following the application of the second reset voltage 624, all of thebit cells of the memory array 604 are reset to the low resistive state,as shown by the memory array 604(E), including the bit cell 636 thatfailed to switch to the low resistive state after the first resetvoltage 620 was applied. The memory device may then perform the secondevaluate operations 626 to update the third set of bit cells 638 and thefourth set of bit cells 640. For instance, during the second evaluateoperations 626, the memory device may identify a third currentassociated with each of the bit cells of the third set of bit cells 638(e.g., the bit cells that did not change state after the first restvoltage 630 was applied) and compare the third current with the firstcurrent for each of the bit cells of the third set of bit cells 638. Inthis manner, the memory device may identify that bit cell 638 didexperience a state change and should be included in the fourth set ofbit cells 640 (representative of high values) rather than as part of thethird set of bit cells 638 (representative of low values). Thus, asillustrated with respect to memory array 604(E), the bit cell 636 isincluded in the fourth set of bit cells 640.

Once the third set of bit cells 638 and the fourth set of bit cells 640are correctly identified, the memory device may read the data into thecache 602(F) and receive one or more read/write commands 610. The memorydevice may then perform the read/write operations 612 to allow theexternal source to access or edit the data stored in the cache 602,illustrated by the cache 602(G).

To complete the page access the memory device receives the prechargecommand 614 and in response performs the precharge operations 616 towrite the data stored in the cache 603(F) back into the memory array 604and illustrated as the memory array 604(H), as described above withrespect to FIG. 5.

While FIGS. 1-6 illustrate timing diagrams associated with accessingdata stored in a memory array according to some implementations, FIGS.7-12 illustrate example processes performed by a memory deviceimplementing the sequences described above. The processes areillustrated as a collection of blocks in a logical flow diagram, whichrepresents a sequence of operations, some or all of which can beimplemented in hardware, software or a combination thereof. In thecontext of software, the blocks represent computer-executableinstructions stored on one or more computer-readable media that, whichwhen executed by one or more processors, perform the recited operations.Generally, computer-executable instructions include routines, programs,objects, components, data structures and the like that performparticular functions or implement particular abstract data types.

The order in which the operations are described should not be construedas a limitation. Any number of the described blocks may be combined inany order and/or in parallel to implement the process, or alternativeprocesses, and not all of the blocks need be executed. For discussionpurposes, the processes herein are described with reference to theframeworks, architectures and environments described in the examplesherein, although the processes may be implemented in a wide variety ofother frameworks, architectures or environments.

FIG. 7 illustrates an example flow diagram showing an illustrativeprocess 700 associated with storing data in one or more memory arraysaccording to some implementations. At 702, a memory device receives datato write into bit cells of one or more memory arrays. For example, thememory device may receive a write back command as described with respectto FIGS. 1-4 and/or a precharge command as describe above with respectto FIGS. 5 and 6. In response, the memory device may access the data viaone or more cache bits. In some example, the memory device may receive astream of data, for instance, from an external source.

At 704, the memory device determines a set of data bits to place into asecond state based at least in part on the data received. For example,the memory device may have reset each of the bit cells to a first stateand identify the set of bit cells by identifying bit cells thatcorrespond to data to be stored in the second state.

At 706, the memory device applies a first voltage for a first durationto the set of bit cells. In some cases, the first duration may berelatively short and/or of insufficient length to switch one hundredpercent of the bit cells of the memory arrays to the second state. Forexample, the first duration may be less than a first threshold duration.In some cases, the first threshold duration may be a duration or lengthof time estimated to switch the state of about eighty five percent ofthe bit cells, ninety percent of the bit cells, ninety five percent ofthe bit cells, ninety nine percent of the bit cells, ninety nine pointnine percent of the bit cells, etc.

At 708, the memory device identifies a subset of the set of bit cells.The bit cells within the subset of bit cells include bit cells thatremained in the first state following the application of the firstvoltage. For instance, in one example, the memory device may beconfigured to evaluate the state of the set of bit cells using areferenced read operation. In another example, the memory device may beconfigured to sample and store a current associated with each of the bitcells prior to the application of the first voltage. The memory devicemay then evaluate the state by comparing the stored current to currentassociated with each bit cell of the set of bit cells following theapplication of the first voltage.

At 710, the memory device applies a second voltage for a second durationto the subset of bit cells. In some cases, the second duration may beconfigured based in part on the first duration. For instance, the secondduration may be configured to be longer than the first duration. Forexample, the second duration may be greater than the first thresholdduration. In other cases, the second duration may be greater than asecond threshold duration. For instance, the second threshold durationmay be a duration of sufficient length to switch or set one hundredpercent of the bit cells of the memory arrays within the memory device.In this manner, the memory device is able to apply a voltage having ashorter duration to at least some of the bit cells, while ensuring thedata is stored correctly by selectively applying a voltage for a longerduration.

FIG. 8 illustrates another example flow diagram showing an illustrativeprocess 800 associated with storing data in one or more memory arraysaccording to some implementations. At 802, a memory device receives datato write into bit cells of one or more memory arrays. For example, thememory device may receive a write back command as described with respectto FIGS. 1-4 and/or a precharge command as described above with respectto FIGS. 5 and 6. In response, the memory device may access the data viaone or more cache bits. In some examples, the memory device may receivea stream of data, for instance, from an external source.

At 804, the memory device determines a set of data bits to place into asecond state based at least in part on the data received. For example,the memory device may have reset each of the bit cells to a first stateand identify the set of bit cells by identifying bit cells thatcorrespond to data to be stored in the second state.

At 806, the memory device applies a first voltage of a first magnitudeto the set of bit cells. In some cases, the first magnitude may berelatively small and/or of insufficient strength to switch one hundredpercent of the bit cells of the memory arrays to the second state. Forexample, the first magnitude may be less than a first thresholdmagnitude. In some cases, the first threshold magnitude may be set at amagnitude estimated to switch the state of about twenty five percent ofthe bit cells, fifty percent of the bit cells, seventy five percent ofthe bit cells, eighty percent of the bit cells, ninety percent of thebit cells, etc.

At 808, the memory device identifies a subset of the set of bit cells.The bit cells within the subset of bit cells include bit cells thatremained in the first state following the application of the firstvoltage. For instance, in one example, the memory device may beconfigured to evaluate the state of the set of bit cells using areferenced read operation. In another example, the memory device may beconfigured to sample and store a current associated with each of the bitcells prior to the application of the first voltage. The memory devicemay then evaluate the state by comparing the stored current to currentassociated with each bit cell of the set of bit cells following theapplication of the first voltage.

At 810, the memory device applies a second voltage having a secondmagnitude to the subset of bit cells. In some cases, the secondmagnitude may be configured based in part on the first magnitude. Forinstance, the second magnitude may be configured to be larger than thefirst magnitude. For example, the second magnitude may be greater thanthe first threshold magnitude. In other cases, the second magnitude maybe greater than a second threshold magnitude. For instance, the secondthreshold magnitude may be set to a level sufficient to switch or setone hundred percent of the bit cells of the memory arrays within thememory device. In this manner, the memory device is able to apply avoltage having a lower magnitude to at least some of the bit cells,while ensuring the data is stored correctly by selectively applying avoltage having a larger magnitude.

FIG. 9 illustrates another example flow diagram showing an illustrativeprocess 900 associated with storing data in one or more memory arraysaccording to some implementations. At 902, a memory device receives datato write into bit cells of one or more memory arrays. For example, thememory device may receive a write back command as described with respectto FIGS. 1-4 and/or a precharge command as described above with respectto FIGS. 5 and 6. In response, the memory device may access the data viaone or more cache bits. In some examples, the memory device may receivea stream of data, for instance, from an external source.

At 904, the memory device resets the bit cells of the memory arrays to afirst state. For example, the memory device may implement an inversionscheme that benefits from having each bit cell of the memory arrays in apredetermined state prior to storing data. For example, some inversionschemes include a process of setting each of the bit cells to the lowresistive state prior to storing the data into the arrays. The memorydevice may then perform a majority detection with regards to the stateof the data to identify the majority state and the minority stateassociated with the data bits. In this scheme, the memory device maystore the data in the memory arrays such that the bit cellscorresponding to the data bits in the minority state are switched fromthe low resistive state to the high resistive state. For example, if theminority state is the low resistive state, the data is stored and one ormore inversion bits are not set. However, if the minority state is thehigh resistive state, the data is inverted before storing and the one ormore inversion bit are set. In this manner, the memory device may savepower by setting a fewer of the bits to the high resistive state.

At 906, the memory device determines a set of data bits to place into asecond state based at least in part on the data received. For example,following resetting the bit cells to the first state, the memory devicemay form the set of bit cells by identifying bit cells that correspondto data to be stored in the second state.

At 908, the memory device applies a first voltage to the set of bitcells. In some cases, the first voltage may have a first duration thatmay be of insufficient length and/or a first magnitude that may be ofinsufficient strength to switch each of the bit cells of the memoryarrays to the second state. In other cases, the combination of the firstduration and the first magnitude may be insufficient to switch onehundred percent of the bit cells. For example, the first duration may beless than a first threshold duration and the first magnitude may be lessthan a first threshold magnitude. In some cases, the first thresholdduration may be a duration or length of time estimated to switch thestate of about eighty five percent of the bit cells, ninety percent ofthe bit cells, ninety five percent of the bit cells, ninety nine percentof the bit cells, ninety nine point nine percent of the bit cells, etc.Similarly, the first threshold magnitude may be set at a magnitudeestimated to switch the state of about eighty five percent of the bitcells, ninety percent of the bit cells, ninety five percent of the bitcells, ninety nine percent of the bit cells, ninety nine point ninepercent of the bit cells, etc.

At 910, the memory device identifies a subset of the set of bit cells.The bit cells within the subset of bit cells including bit cells thatremained in the first state following the application of the firstvoltage. For instance, in one example, the memory device may beconfigured to evaluate the state of the set of bit cells using areferenced read operation. In another example, the memory device may beconfigured to sample and store a current associated with each of the bitcells prior to the application of the first voltage. The memory devicemay then evaluate the state by comparing the stored current to currentassociated with each bit cell of the set of bit cells following theapplication of the first voltage.

At 912, the memory device applies a second voltage to the subset of bitcells. In some cases, the second voltage has a second duration that maybe configured based at least in part on the first duration and/or asecond magnitude that may be configured based in part on the firstmagnitude. For instance, the second duration may be longer than thefirst duration and the second magnitude may be larger than the firstmagnitude. For example, the second duration may be longer than the firstthreshold duration the second magnitude may be greater than the firstthreshold magnitude. In other cases, the second duration may be longerthan a second threshold duration and the second magnitude may be greaterthan a second threshold magnitude. For instance, the second thresholdduration may be set to a length sufficient to switch or set one hundredpercent of the bit cells and/or the second threshold magnitude may beset to a level sufficient to switch or set one hundred percent of thebit cells. In this manner, the memory device is able to apply a firstvoltage having a shorter duration, lower magnitude, or both to at leastsome of the bit cells, thereby extending the time period associated withthe dielectric breakdown of the MTJs and extending the usable lifetimeof the memory device.

FIG. 10 illustrates another example flow diagram showing an illustrativeprocess 1000 associated with storing data in one or more memory arraysaccording to some implementations. At 1002, a memory device receivesdata to write into bit cells of one or more memory arrays. For example,the memory device may receive a write back command as described withrespect to FIGS. 1-4 and/or a precharge command as described above withrespect to FIGS. 5 and 6. In response, the memory device may access thedata via one or more cache bits. In some examples, the memory device mayreceive a stream of data, for instance, from an external source.

At 1004, the memory device determines a first set of data bits to placeinto a first state and a second set of data bits to place into a secondstate based at least in part on the data received. For example, thememory device may sample a state associated with each of the bit cellsbeing written to and compare the sampled state to the state of the datareceived. When the sampled state is compared to the data, the memorydevice may identify some bit cells that already in the correct state(e.g., bit cells in the low resistive state that correspond to lowvalues in the data and bit cells in the high resistive state thatcorrespond to high values). The memory device may also identify a set ofbit cells that are in the high resistive state and correspond to lowvalues in the data and a set of bit cells that are in the low resistivethat correspond to high values in the data.

At 1006, the memory device applies a first up voltage to the first setof bit cells and a first down voltage to the second set of bit cells. Insome cases, the first up voltage and the first down voltage may have aduration and/or magnitude to switch the state of a portion of the bitcells but fewer than one hundred percent of the bit cells, as describedabove.

At 1008, the memory device identifies a first subset of the first set ofbit cells and a second subset of the second set of bit cells. The bitcells within the first subset of bit cells includes bit cells thatremained in the low resistive state following the application of thefirst up voltage. The bit cells within the second subset of bit cellsincludes bit cells that remained in the high resistive state followingthe application of the first down voltage. For instance, in one example,the memory device may be configured to evaluate the state of the firstset of bit cells and the second set of bit cells using a referenced readoperation. In another example, the memory device may be configured tosample and store a current associated with each of the bit cells priorto the application of the first up voltage and the first down voltage.The memory device may then evaluate the state by comparing the storedcurrent to current associated with each bit cell of the first set of bitcells and the second set of bit cells following the application of thefirst up voltage and the first down voltage.

At 1010, the memory device applies a second up voltage to the firstsubset of bit cells and a second down voltage to the second subset ofbit cells. In some cases, the second up voltage has a duration and/or amagnitude greater than the duration and/or magnitude of the first upvoltage. Similarly, the second down voltage may have a duration and/or amagnitude greater than the duration and/or magnitude of the first downvoltage. For example, the duration and/or the magnitude of the second upvoltage and the duration and/or the magnitude of the second down voltagemay be configured to ensure that the bit cells of the memory arrayschange states. In this manner, the memory device is able to apply afirst up voltage and a first down voltage having a shorter duration,lower magnitude, or both to switch at least some of the bit cells,thereby extending the time period associated with the dielectricbreakdown of the MTJs and extending the usable lifetime of the memorydevice.

FIG. 11 illustrates another example flow diagram showing an illustrativeprocess 1100 associated with storing data in one or more memory arraysaccording to some implementations. For example a memory device may beconfigured to write cache bits into bit cells of a memory arrayaccording to a predetermined series or sequence of commands. In someparticular implementations, the predetermined series or sequence ofcommand may include an activate-read/write-precharge sequence.

At 1102, a memory device receives an activate command form the externalsource. For example, as discussed above with respect to FIG. 5, theactivate command may cause the memory to perform activate operationsassociated with opening a page by, for instance, loading stateinformation from the bit cells of the memory array into a cache.

At 1104, the memory device performs the activate operations and loadsdata stored in the memory array into cache bits. For example, the memorydevice may load the data as part of a reference read operation. In otherexamples, the memory device may be configured to perform self-referencedreads, as described above.

At 1106, the memory device receives at least one read/write command fromthe external source. For example, the read/write commands may be issuedby the external source to cause the memory device to perform read/writeoperations associated with editing and/or accessing the cache while thedata is stored in the cache. In some cases, the memory device may beconfigured to receive a single read or write command as part of theactivate-read/write-precharge sequence of commands, for instance, whenthe memory device is configured to allow one access per page. In othercases, the memory device may be configured to receive multiple readand/or write commands associated with the data stored in the cache bits,for instance, the memory device may be configured to perform read/writesto the same page in series to improve performance.

At 1108, the memory device performs read/write operation associated withthe data stored in the cache bits. For example, the memory device may beconfigured to allow the external source to access the data in the cachebits in response to a read command and to allow the external source toedit the data in the cache bits in response to a write command.

At 1110, the memory device receives a precharge command form theexternal source. For example, the precharge command may be issued by theexternal source to cause the memory device to perform prechargeoperations associated with closing the open page by, for instance,writing the data stored in cache bits into the memory array.

At 1112, the memory device determines a set of data bits to place into asecond state. For example, the memory device may perform a resetoperation as part of either the activate operations or the prechargeoperations to set each of the bit cells of the memory array to the firststate. In one example, the memory device may perform self-referencedreads when loading the data into the cache and in this regards set eachbit cell read to the first state. Thus, the memory device may form theset of bit cells by identifying bit cells that correspond to data to bestored in the second state (e.g., the bit cells that are in the oppositestate of the corresponding cache bit).

At 1114, the memory device applies a first voltage to the set of bitcells. In some cases, the first voltage may have a first duration thatmay be of insufficient length and/or a first magnitude that may be ofinsufficient strength to switch each of the bit cells of the memoryarrays to the second state. In other cases, the combination of the firstduration and the first magnitude may be insufficient to switch onehundred percent of the bit cells. For example, the first duration may beless than a first threshold duration and the first magnitude may be lessthan a first magnitude threshold. In some cases, the first thresholdduration may be a duration or length of time estimated to switch thestate of about eighty five percent of the bit cells, ninety percent ofthe bit cells, ninety five percent of the bit cells, ninety nine percentof the bit cells, ninety nine point nine percent of the bit cells, etc.Similarly, the first threshold magnitude may be set at a magnitudeestimated to switch the state of about eighty five percent of the bitcells, ninety percent of the bit cells, ninety five percent of the bitcells, ninety nine percent of the bit cells, ninety nine point ninepercent of the bit cells, etc.

At 1116, the memory device identifies a subset of the set of bit cells.The bit cells within the subset of bit cells including bit cells thatremained in the first state following the application of the firstvoltage. For instance, in one example, the memory device may beconfigured to evaluate the state of the set of bit cells using areferenced read operation. In another example, the memory device may beconfigured to sample and store a current associated with each of the bitcells prior to the application of the first voltage. The memory devicemay then evaluate the state by comparing the stored current to currentassociated with each bit cell of the set of bit cells following theapplication of the first voltage.

At 1118, the memory device applies a second voltage to the subset of bitcells. In some cases, the second voltage has a second duration that maybe configured based at least in part on the first duration and/or asecond magnitude that may be configured based in part on the firstmagnitude. For instance, the second duration may be longer than thefirst duration and the second magnitude may be larger than the firstmagnitude. For example, the second duration may be longer than the firstthreshold duration the second magnitude may be greater than the firstthreshold magnitude. In other cases, the second duration may be longerthan a second threshold duration and the second magnitude may be greaterthan a second threshold magnitude. For instance, the second thresholdduration may be set to a length sufficient to switch or set one hundredpercent of the bit cells and/or the second threshold magnitude may beset to a level sufficient to switch or set one hundred percent of thebit cells. In this manner, the memory device is able to apply a firstvoltage having a shorter duration, lower magnitude, or both to at leastsome of the bit cells, thereby extending the time period associated withthe dielectric breakdown of the MTJs and extending the usable lifetimeof the memory device.

In the example of the process 1100, it is assumed the memory devicereset the bit cells to the first state prior to writing the data in thecache bits back into the bit cells of the memory array. Thus, twovoltages in a single direction were applied to the bit cells beingplaced in the second state. However, in other examples, the memorydevice may not reset the bit cells prior to writing the data from thecache bits into the array. In these examples, the memory device mayperform additional operations to identify a second set of bit cells toplace in the first state and apply two additional voltages in theopposite direction to switch the bit cells from the second state to thefirst state, as described above with respect to FIGS. 2 and 3.

FIG. 12 illustrates another example flow diagram showing an illustrativeprocess 1200 associated with storing data in one or more memory arraysaccording to some implementations. For example a memory device may beconfigured to write cache bits into bit cells of a memory arrayaccording to a predetermined series or sequence of commands. In someparticular implementations, the predetermined series or sequence ofcommand may include an activate-read/write-precharge sequence.

At 1202, a memory device receives an activate command form the externalsource. For example, as discussed above with respect to FIG. 5, theactivate command may cause the memory device to perform activateoperations associated with opening a page by, for instance, loadingstate information from the bit cells of the memory array into a cache.

At 1204, the memory device performs the activate operations and samplesstate information of each bit cell of a memory array being accessed bythe external source. The memory device then stores the state informationassociated with each of the bit cells. For example, the memory devicemay generate the state information of each bit cell by biasing the bitcells and measuring a current or resistance associated with each.

At 1206, the memory device applies a first voltage to the bit cells ofthe memory array. The first voltage is intended to switch each of thebit cells of the memory array to the same state. For example, the firstvoltage may be a down voltage intended to place each of the bit cellsnot already in the low resistive state into the low resistive state. Inother examples, the first voltage may be an up voltage intended to placeeach of the bit cells not already in the high resistive state into thehigh resistive state. In some cases, the first voltage may have a firstduration that may be of insufficient length and/or a first magnitudethat may be of insufficient strength to switch each of the bit cells ofthe memory arrays to the second state. In other cases, the combinationof the first duration and the first magnitude may be insufficient toswitch one hundred percent of the bit cells. For example, the firstduration may be less than a first threshold duration and the firstmagnitude may be less than a first magnitude threshold. In some cases,the first threshold duration may be a duration or length of timeestimated to switch the state of about eighty five percent of the bitcells, ninety percent of the bit cells, ninety five percent of the bitcells, ninety nine percent of the bit cells, ninety nine point ninepercent of the bit cells, etc. Similarly, the first threshold magnitudemay be set at a magnitude estimated to switch the state of about eightyfive percent of the bit cells, ninety percent of the bit cells, ninetyfive percent of the bit cells, ninety nine percent of the bit cells,ninety nine point nine percent of the bit cells, etc.

At 1208, the memory device identifies a set of bit cells. The set of bitcells are bit cells that did not change state following the applicationof the first voltage. For instance, the memory device may be configuredto once again bias the bit cells and measure a current or resistance ofeach bit cell. The memory device may then compare the stored stateinformation with measured current or resistance to identify the set ofbit cells that did not change states. In this example, the set of bitcells includes both bit cells that were already in the first state(e.g., bit cells whose state information should have remained the same)and bit cells in the second state that the first voltage failed toswitch (e.g., bit cells whose state information should have changed).

At 1210, the memory device applies a second voltage to the set of bitcells. In some cases, the second voltage has a second duration that maybe configured based at least in part on the first duration and/or asecond magnitude that may be configured based in part on the firstmagnitude. For instance, the second duration may be longer than thefirst duration and the second magnitude may be larger than the firstmagnitude. For example, the second duration may be longer than the firstthreshold duration and the second magnitude may be greater than thefirst threshold magnitude. In other cases, the second duration may belonger than a second threshold duration and the second magnitude may begreater than a second threshold magnitude. For instance, the secondthreshold duration may be set to a length sufficient to switch or setone hundred percent of the bit cells and/or the second thresholdmagnitude may be set to a level sufficient to switch or set one hundredpercent of the bit cells. In this manner, the memory device is able toapply a first voltage having a shorter duration, lower magnitude, orboth to at least some of the bit cells, thereby extending the timeperiod associated with the dielectric breakdown of the MTJs andextending the usable lifetime of the memory device.

At 1212, the memory device identifies a set of bit cells that changedstate and a set of bit cells that remained in the same state. Forinstance, the memory device may identify the set of bit cells thatchanged state and the set of bit cells that remained in the same state,by again biasing the bit cells and measuring a current or resistance ofeach bit after both the first and second voltages have been applied andcomparing the stored state information to the measured current orresistance. In this manner, the memory device is able to identify whichbit cells to read as a high value and which to read as a low value.

At 1214, the memory device writes the data into the cache bits. Forexample, once the data is stored in the cache bits, the external sourcemay issue read and/or write command to access and/or edit the data.Following the read/write commands, the memory device receives aprecharge command to cause the memory device to write the data in thecache bits back into the memory array.

FIG. 13 illustrates an example block diagram 1300 of select componentsof a memory device 1302 accessible to an external source 1304. In theillustrated example, the memory device 1302 includes memory arrays 1306,1308, 1310, and 1312, as well as cache 1314 and page access circuitry1316. In general, the page access circuitry 1316 may be configured toloading data form the memory arrays 1306-1312 into the cache 1314 inresponse to receiving an activate command from the external source 1304.The memory device may also be configured to write data stored in thecache 1314 back into the corresponding memory array 1306-1312 inresponse to receiving a precharge command from the external source 1304.

The memory device 1302 may be an example of tangible non-transitorycomputer storage media and may include volatile and nonvolatile memoryand/or removable and non-removable media implemented in any type oftechnology for storage of information such as computer-readableinstructions or modules, data structures, program modules or other data.Such computer-readable media may include, but is not limited to, RAM,ROM, EEPROM, flash memory or other computer-readable media technology,solid state storage, RAID storage systems, storage arrays, networkattached storage, storage area networks, cloud storage, or any othermedium that can be used to store information. In one particular example,the memory device may be a magnetic memory or magnetic disk storage,such as an MRAM device.

In general, the page access circuitry 1316 is configured to apply afirst voltage and a second voltage to the bit cells of the memory arrays1306-1312 when loading data into the cache 1314, as described above withrespect to FIGS. 6 and 13. For instance, the page access circuitry 1316may perform self-referenced reads by sampling state informationassociated with each bit cell storing data being loaded into the cache1314 and storing the state information. The page access circuitry 1316may then apply a first voltage to switch the state of each bit cell tothe low resistive state (or, alternatively, to the high resistive state)and evaluate the state information of each bit cell by comparing thecurrent state information to the stored state information to identify aset of bit cells that did not change state. Once the set of bit cellsare identified, the page access circuitry 1316 may apply a secondvoltage of greater duration and/or magnitude than the first voltage tothe set of bit cells. Then the page access circuitry 1316 may identifythe values stored on each bit cell by re-evaluating the stateinformation of each bit cell by comparing the current state informationto the stored state information to identify a set of bit cells that didnot change state (e.g., a bit cell storing a low value) and a set of bitcells that did change state (e.g., a bit cell storing a high value).

The page access circuitry 1316 may also be configured to apply a firstvoltage and a second voltage to the bit cells of the memory arrays1306-1312 when writing data back into the bit cells form the cache 1314,as described above with respect to FIGS. 5 and 12. For instance, thepage access circuitry 1316 may determine a set of bit cells to place inthe low resistive state and a set of bit cells to place in the highresistive state. The page access circuitry 1316 may then apply a firstup voltage to the set of bit cells to place in the high resistive stateand a first down voltage to the set of bit cells to place in the lowresistive state. Once the first up and the first down voltages areapplied, the page access circuitry 1316 may identify a first subset ofbit cells that did not switch form the low resistive state to the highresistive state and a second subset of bit cells that did not switchform the high resistive state to the low resistive state. The pageaccess circuitry 1316 may then apply a second up voltage having agreater duration and/or magnitude than the first up voltage to the firstsubset of bit cells and apply a second down voltage having a greaterduration and/or magnitude than the first down voltage to the secondsubset of bit cells.

FIG. 14 illustrates another example block diagram of select componentsof a memory device 1400 accessible to an external source. In theillustrated example, the memory device 1400 includes page accesscircuitry 1402 that may be configured to load data form memory arrays1404 into a cache 1406 in response to receiving an activate command fromthe external source 1404. The memory device may also be configured towrite data stored in the cache 1406 back into the corresponding memoryarray 1404 in response to receiving a precharge command form theexternal source.

In general, the page access circuitry 1402 includes a first up driver1406, a first down driver 1410, a second up driver 1412, and a seconddown driver 1414 for generating voltages 1416 (e.g., up and downvoltages, respectively) to switch the state of the bit cells of thememory arrays 1404 when accessed, as described above. The drivers1408-1414 generate the voltages 1416 based in part on input receivedfrom a bias component 1418 and/or a timing sequencer 1420. For example,the bias component 1418 may be configured to provide voltage signals1422, 1424, 1426, and 1428 to the drivers 1408-1414 to indicate amagnitude of the voltages 1416 generated by each driver 1408-1414.Similarly, the timing sequencer 1420 may be configured to provide timingsignals 1430, 1432, 1434, and 1436 to the drivers 1408-1414 to indicatea duration to apply the voltages 1416 generated by each driver1408-1414.

In one example, the page access circuitry 1402 may receive a command towrite the data stored in the cache 1406 into particular bit cells of thememory arrays 1404. During a first period of time, the page accesscircuitry 1402 may then identify a first set of bit cell to be placed inthe high resistive state and a second set of bit cells to be placed inthe low resistive state. In this example, the timing sequencer 1420provides the timing signal 1430 to the first up driver 1408 and thetiming signal 1432 to the first down driver 1410. Likewise, the biascomponent 1418 provides the voltage signal 1422 to the first up driver1408 and the voltage signal 1424 to the first down driver 1410. Based atleast in part on the timing signal 1430 and the voltage signal 1422, thefirst up driver 1408 provides voltages 1416 of a first magnitude for afirst duration to the bit cells of the first set of bit cells.Similarly, based at least in part on the timing signal 1432 and thevoltage signal 1424, the first down driver 1410 provides voltages 1416of a second magnitude for a second duration to the bit cells of thesecond set of bit cells. In some cases, the first and second magnitudesmay be the same. In other examples, the first and second magnitudes maydiffer; for instance, when the voltages 1416 required to set a bit cellfrom the low resistive state to the high resistive state differ from thevoltages 1416 required to set a bit cell from the high resistive stateto the low resistive state.

During a second period of time after the expiration of the first periodof time, the page access circuitry 1402 may identify a first subset ofbit cells that were not placed in the high resistive state by the firstup driver 1408 and a second subset of bit cells that were not placed inthe low resistive state by the first down driver 1408. In this example,the timing sequencer 1420 provides the timing signal 1434 to the secondup driver 1412 and the timing signal 1436 to the second down driver1414. Likewise, the bias component 1418 provides the voltage signal 1426to the second up driver 1412 and the voltage signal 1428 to the seconddown driver 1414. Based at least in part on the timing signal 1434 andthe voltage signal 1426, the second up driver 1412 provides voltages1416 of a third magnitude for a third duration to the bit cells of thefirst subset of bit cells. Similar, based at least in part on the timingsignal 1436 and the voltage signal 1428, the second down driver 1414provides voltages 1416 of a fourth magnitude for a fourth duration tothe bit cells of the second subset of bit cells. In general, the thirdmagnitude is greater than the first magnitude and the third duration isgreater than the first duration to ensure the bit cells of the firstsubset are placed in the high resistive state. Likewise, the fourthmagnitude is greater than the second magnitude and the fourth durationis greater than the second duration to ensure the bit cells of thesecond subset are placed in the low resistive state. In some cases, thethird and fourth magnitudes may be the same. In other examples the thirdand fourth magnitudes may differ; for instance, when the voltages 1416required to set a bit cell from the low resistive state to the highresistive state differs from the voltages 1416 required to set a bitcell from the high resistive state to the low resistive state.

In some implementations, the drivers 1408-1414, the bias component 1418,and the timing sequencer 1420 may also be utilized to generate voltages1416 of differing magnitude and/or duration with respect to writing datafrom the cache 1406, as described above with respect to FIGS. 6 and 12.Additionally, in the illustrated example, two up drivers 1408 and 1412and two down drivers 1410 and 1412 are shown. However, in anotherexample, one up driver may be configured to generate the voltages 1416having both the first magnitude and duration and the third magnitude andduration and one down driver may be configured to generate the voltages1416 having both the second magnitude and duration and the fourthmagnitude and duration. In other examples, a single driver may beconfigured to generate both the up and down voltages. Similarly, thebias component 1418 may include multiple components to generate each ofthe voltage signals 1422-1428 and the timing sequencer 1420 may includemultiple sequencers for generating the timing signals 1430-1436.

Although the subject matter has been described in language specific tostructural features, it is to be understood that the subject matterdefined in the appended claims is not necessarily limited to thespecific features described. Rather, the specific features are disclosedas illustrative forms of implementing the claims.

1-20. (canceled)
 21. A method comprising: receiving, at a memory device,data targeted for storage in a plurality of bit cells of a memory array,wherein each bit cell of the plurality of bit cells is configured to bein one of a first state or a second state; identifying, based at leastin part on the received data, a first set of bit cells of the pluralityof bit cells to be placed in the first state, and identifying a secondset of bit cells of the plurality bit cells to be placed in the secondstate; applying a first voltage to the first set of bit cells to changea portion of bit cells in the first set of bit cells to the first state,wherein the first voltage includes a first magnitude and a firstduration; applying a second voltage to the second set of bit cells tochange a portion of bit cells in the second set of bit cells to thesecond state, wherein the second voltage includes a second magnitude anda second duration; identifying a first subset of bit cells from thefirst set of bit cells, wherein the first subset of bit cells containseach bit cell in the first set that remains in the second state, andidentifying a second subset of bit cells from the second set of bitcells, wherein the second subset of bit cells contains each bit cell inthe second set that remains in the first state; applying a third voltageto each bit cell of the first subset of bit cells to change each bitcell of the first subset of bit cells from the second state to the firststate, wherein the third voltage includes a third magnitude and a thirdduration, and wherein at least one of the third magnitude and the thirdduration is greater than the first magnitude and the first duration,respectively; and applying a fourth voltage to each bit cell of thesecond subset of bit cells to change each bit cell of the second subsetof bit cells from the first state to the second state, wherein thefourth voltage includes a fourth magnitude and a fourth duration, andwherein at least one of the fourth magnitude and the fourth duration isgreater than the second magnitude and the second duration, respectively.22. The method of claim 21, wherein the data targeted for storage in theplurality of bit cells is accessed from a cache in response to aprecharge command, a command issued to the memory device from anexternal device, or a command issued internally by the memory device.23. The method of claim 21, wherein the magnitude or duration of thethird voltage is configured to set each bit cell of the first subset ofbit cells to the first state; and wherein the magnitude or duration ofthe fourth voltage is configured to set each bit cell of the secondsubset of bit cells to the second state.
 24. The method of claim 21,wherein the first state is a high resistive state, and the second stateis a low resistive state.
 25. The method of claim 21, wherein the firststate is a low resistive state, and the second state is a high resistivestate.
 26. The method of claim 21, wherein one or more of theidentifying steps includes sampling a state of each bit cell of theplurality of bit cells.
 27. The method of claim 21, wherein the firstvoltage is applied in a first direction, and the second voltage isapplied in a second direction opposite to the first direction; andwherein each bit cell of the plurality of bit cells is a magnetic tunneljunction.
 28. The method of claim 21, wherein identifying the first setof bit cells, identifying the second set of bit cells, identifying thefirst subset of bit cells, and/or identifying the second subset of bitcells includes a referenced read operation.
 29. A method comprising:receiving, at a memory device, data targeted for storage in a pluralityof bit cells of a memory array, wherein each bit cell of the pluralityof bit cells is configured to be in one of a first state or a secondstate; identifying, based at least in part on the received data, a firstset of bit cells of the plurality of bit cells to be placed in the firststate, and identifying a second set of bit cells of the plurality bitcells to be placed in the second state; applying a first voltage to thefirst set of bit cells to change a portion of bit cells in the first setof bit cells to the first state, wherein the first voltage includes afirst magnitude and a first duration; applying a second voltage to thesecond set of bit cells to change a portion of bit cells in the secondset of bit cells to the second state.
 30. The method of claim 29,wherein the data targeted for storage in the plurality of bit cells isaccessed from a cache in response to a precharge command, a commandissued to the memory device from an external device, or a command issuedinternally by the memory device.
 31. The method of claim 29, wherein thefirst state is a high resistive state, and the second state is a lowresistive state.
 32. The method of claim 29, wherein the first state isa low resistive state, and the second state is a high resistive state.33. The method of claim 29, wherein the identifying step includessampling a state of each bit cell of the plurality of bit cells.
 34. Themethod of claim 29, wherein the first voltage is applied in a firstdirection, and the second voltage is applied in a second directionopposite to the first direction; and wherein each bit cell of theplurality of bit cells is a magnetic tunnel junction.
 35. The method ofclaim 29, wherein identifying the first set of bit cells and identifyingthe second set of bit cells includes a referenced read operation. 36.The method of claim 29, wherein the second voltage includes a secondmagnitude and a second duration, wherein the second magnitude isdifferent from the first magnitude and the second duration is differentfrom the first duration and wherein the method further comprises:identifying a first subset of bit cells from the first set of bit cells,wherein the first subset of bit cells contains each bit cell in thefirst set that remains in the second state, and identifying a secondsubset of bit cells from the second set of bit cells, wherein the secondsubset of bit cells contains each bit cell in the second set thatremains in the first state; applying a third voltage to each bit cell ofthe first subset of bit cells to change each bit cell of the firstsubset of bit cells from the second state to the first state, whereinthe third voltage includes a third magnitude and a third duration, andwherein at least one of the third magnitude and the third duration isgreater than the first magnitude and the first duration, respectively;and applying a fourth voltage to each bit cell of the second subset ofbit cells to change each bit cell of the second subset of bit cells fromthe first state to the second state, wherein the fourth voltage includesa fourth magnitude and a fourth duration, and wherein at least one ofthe fourth magnitude and the fourth duration is greater than the secondmagnitude and the second duration, respectively. wherein the magnitudeor duration of the third voltage is configured to set each bit cell ofthe first subset of bit cells to the first state; and wherein themagnitude or duration of the fourth voltage is configured to set eachbit cell of the second subset of bit cells to the second state.
 37. Amethod comprising: receiving, at a memory device, data targeted forstorage in a plurality of bit cells of a memory array, wherein each bitcell of the plurality of bit cells is configured to be in one of a firststate or a second state; identifying, based at least in part on thereceived data, a first set of bit cells of the plurality of bit cells tobe placed in the first state; applying a first voltage to the first setof bit cells to change a portion of bit cells in the first set of bitcells to the first state, wherein the first voltage includes a firstmagnitude and a first duration; identifying a first subset of bit cellsfrom the first set of bit cells, wherein the first subset of bit cellscontains each bit cell in the first set that remains in the secondstate; and applying a second voltage to each bit cell of the firstsubset of bit cells to change each bit cell of the first subset of bitcells from the second state to the first state, wherein the secondvoltage includes a second magnitude and a second duration, and whereinat least one of the second magnitude and the second duration is greaterthan the first magnitude and the first duration, respectively.
 38. Themethod of claim 37, wherein the data targeted for storage in theplurality of bit cells is accessed from a cache in response to aprecharge command, a command issued to the memory device from anexternal device, or a command issued internally by the memory device.39. The method of claim 37, wherein each bit cell of the plurality ofbit cells is a magnetic tunnel junction; and wherein identifying thefirst set of bit cells and/or identifying the first subset of bit cellsincludes a referenced read operation.
 40. The method of claim 37,further comprising: identifying a second set of bit cells of theplurality bit cells to be placed in the second state; applying a thirdvoltage to the second set of bit cells to change a portion of bit cellsin the second set of bit cells to the second state, wherein the thirdvoltage includes a third magnitude and a third duration; identifying asecond subset of bit cells from the second set of bit cells, wherein thesecond subset of bit cells contains each bit cell in the second set thatremains in the first state; and applying a fourth voltage to each bitcell of the second subset of bit cells to change each bit cell of thesecond subset of bit cells from the first state to the second state,wherein the fourth voltage includes a fourth magnitude and a fourthduration, and wherein at least one of the fourth magnitude and thefourth duration is greater than the third magnitude and the thirdduration, respectively.